#pragma once
#include "Util.h"
#include <list>

class Regressor
{
public:
	Regressor(void);
	virtual ~Regressor(void);
	virtual void addPoint(Observation o, double target)=0;					 //incremental learning
	virtual void addPoints(std::list< std::pair<Observation,double> >& l)=0; //batch learning
	virtual void addPoints(std::list<Transition>& history, int actionIndex, int targetDim)=0; //another convenient way of batch learning
	virtual bool predict(const Observation, double& result)=0;				 //prediction (return false for I don't know)
	virtual double getConfidence(const Observation o)=0; 

};
